/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;

import dao.PermissaoDAO;
import dao.UsuarioDAO;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import model.Permissao;
import model.Usuario;

/**
 *
 * @author Cilli
 */
@ManagedBean
@SessionScoped
public class BeanCadastroUsuario {
    private Usuario usuario = new Usuario();
    private DataModel listaPermissao;
    private DataModel listaUsuario;
    private Permissao permissaoSelecionada;
    private Long id = null;
    public Permissao permissao = new Permissao();
    public BeanCadastroUsuario() {
    }
    
    public void cadastrarUsuario(){
        UsuarioDAO usuarioDAO = new UsuarioDAO();
        
        try {
          usuario.setPermissao(permissaoSelecionada);
          usuarioDAO.save(usuario);
        } catch (Exception ex) {
            Logger.getLogger(BeanCadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
       }
    }
    
     public void alterarUsuario(){
        UsuarioDAO usuarioDAO = new UsuarioDAO();
        usuario.setPermissao(permissaoSelecionada);
        
        try {
            usuarioDAO.alterarUsuario(usuario);
        } catch (Exception ex) {
            Logger.getLogger(BeanCadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
        }
        id = null;
        novoUsuario();
    }
    
      public String novoUsuario(){
        usuario = null;
        usuario = new Usuario();
        id = null;
        return "cadastroUsuario";
    }
     
    public void preparaAlteracao(){
        usuario = (Usuario)(listaUsuario.getRowData());
        id = usuario.getId();
        permissaoSelecionada = usuario.getPermissao();
    }
    
    public void excluirUsuario(){
        UsuarioDAO clienteDAO = new UsuarioDAO();
        try {
            clienteDAO.deletarUsuario((Usuario)(listaUsuario.getRowData()));
        } catch (Exception e) {
            System.out.println("Erro: "+e);
        }
    }
    
    public DataModel getListarPermissao(){
		PermissaoDAO permissaoDAO = new PermissaoDAO();
		try {
			listaPermissao = new ListDataModel(permissaoDAO.getList());
		} catch (Exception e) {
			System.out.println(e);
		}
		return listaPermissao;
	}
    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    } 
     public void setPermissaoSelecionada(Permissao permissaoSelecionada) {
        this.permissaoSelecionada = permissaoSelecionada;
        System.out.println("estado selecionado ->"+permissaoSelecionada);
    }

    public Permissao getPermissaoSelecionada() {
        return permissaoSelecionada;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public DataModel getListaUsuario() {
        UsuarioDAO usuarioDAO = new UsuarioDAO();
        try {
            listaUsuario = new ListDataModel(usuarioDAO.getList());
        } catch (Exception e) {
            System.out.println(e);
        }
        return listaUsuario;
    }

    public void setListaUsuario(DataModel listaUsuario) {
        this.listaUsuario = listaUsuario;
    }
    
}
